// let list = [{
// 	a: 1,
// 	b: 2
// }, {
// 	d: 1
// }];
// let listMap = list.map(it => ({
// 	...it,
// 	n: 122
// }));
//
// console.log(listMap);

// let item = [{a: 1}];
// function tr(s) {
// 	s.push(1);
// }
// tr(item);
// console.log(item);

function todos(state = [], action) {
	switch (action.type) {
		case 'ADD_TODO':
			return [
				...state,
				action.value
			];
		default:
			return state;
	}
}

function todoApp(state = {}, action) {
	return {
		todos: todos(state.todos, action)
	};
}

function createApp(reducer) {
	var defaultState = reducer({}, {action: "INIT"});
	return {
		getState() {
			return defaultState;
		}
	}
}

var app = createApp(todoApp);

console.log(app.getState());